// vite.config.js
import path2 from "node:path";
import Vue from "file:///D:/vscode/vue-naive-admin/node_modules/@vitejs/plugin-vue/dist/index.mjs";
import VueJsx from "file:///D:/vscode/vue-naive-admin/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs";
import Unocss from "file:///D:/vscode/vue-naive-admin/node_modules/unocss/dist/vite.mjs";
import AutoImport from "file:///D:/vscode/vue-naive-admin/node_modules/unplugin-auto-import/dist/vite.js";
import { NaiveUiResolver } from "file:///D:/vscode/vue-naive-admin/node_modules/unplugin-vue-components/dist/resolvers.js";
import Components from "file:///D:/vscode/vue-naive-admin/node_modules/unplugin-vue-components/dist/vite.js";
import { defineConfig, loadEnv } from "file:///D:/vscode/vue-naive-admin/node_modules/vite/dist/node/index.js";
import removeNoMatch from "file:///D:/vscode/vue-naive-admin/node_modules/vite-plugin-router-warn/dist/index.mjs";
import VueDevTools from "file:///D:/vscode/vue-naive-admin/node_modules/vite-plugin-vue-devtools/dist/vite.mjs";

// build/index.js
import path from "node:path";
import { globSync } from "file:///D:/vscode/vue-naive-admin/node_modules/glob/dist/esm/index.js";

// src/assets/icons/dynamic-icons.js
var dynamic_icons_default = ["i-simple-icons:juejin"];

// build/index.js
function getIcons() {
  const feFiles = globSync("src/assets/icons/feather/*.svg", { nodir: true, strict: true });
  const meFiles = globSync("src/assets/icons/isme/*.svg", { nodir: true, strict: true });
  const feIcons = feFiles.map((filePath) => {
    const fileName = path.basename(filePath);
    const fileNameWithoutExt = path.parse(fileName).name;
    return `i-fe:${fileNameWithoutExt}`;
  });
  const meIcons = meFiles.map((filePath) => {
    const fileName = path.basename(filePath);
    const fileNameWithoutExt = path.parse(fileName).name;
    return `i-me:${fileNameWithoutExt}`;
  });
  return [...dynamic_icons_default, ...feIcons, ...meIcons];
}
function getPagePathes() {
  const files = globSync("src/views/**/*.vue");
  return files.map((item) => `/${path.normalize(item).replace(/\\/g, "/")}`);
}

// build/plugin-isme/icons.js
var PLUGIN_ICONS_ID = "isme:icons";
function pluginIcons() {
  return {
    name: "isme:icons",
    resolveId(id) {
      if (id === PLUGIN_ICONS_ID)
        return `\0${PLUGIN_ICONS_ID}`;
    },
    load(id) {
      if (id === `\0${PLUGIN_ICONS_ID}`) {
        return `export default ${JSON.stringify(getIcons())}`;
      }
    }
  };
}

// build/plugin-isme/page-pathes.js
var PLUGIN_PAGE_PATHES_ID = "isme:page-pathes";
function pluginPagePathes() {
  return {
    name: "isme:page-pathes",
    resolveId(id) {
      if (id === PLUGIN_PAGE_PATHES_ID)
        return `\0${PLUGIN_PAGE_PATHES_ID}`;
    },
    load(id) {
      if (id === `\0${PLUGIN_PAGE_PATHES_ID}`) {
        return `export default ${JSON.stringify(getPagePathes())}`;
      }
    }
  };
}

// vite.config.js
var vite_config_default = defineConfig(({ mode }) => {
  const viteEnv = loadEnv(mode, process.cwd());
  const { VITE_PUBLIC_PATH, VITE_PROXY_TARGET } = viteEnv;
  return {
    base: VITE_PUBLIC_PATH || "/",
    plugins: [
      Vue(),
      VueJsx(),
      VueDevTools(),
      Unocss(),
      AutoImport({
        imports: ["vue", "vue-router"],
        dts: false
      }),
      Components({
        resolvers: [NaiveUiResolver()],
        dts: false
      }),
      // 自定义插件，用于生成页面文件的path，并添加到虚拟模块
      pluginPagePathes(),
      // 自定义插件，用于生成自定义icon，并添加到虚拟模块
      pluginIcons(),
      // 移除非必要的vue-router动态路由警告: No match found for location with path
      removeNoMatch()
    ],
    resolve: {
      alias: {
        "@": path2.resolve(process.cwd(), "src"),
        "~": path2.resolve(process.cwd())
      }
    },
    server: {
      host: "0.0.0.0",
      port: 3200,
      open: false,
      proxy: {
        "/api": {
          target: VITE_PROXY_TARGET,
          changeOrigin: true,
          rewrite: (path3) => path3.replace(/^\/api/, ""),
          secure: false,
          configure: (proxy, options) => {
            proxy.on("proxyRes", (proxyRes, req) => {
              proxyRes.headers["x-real-url"] = new URL(req.url || "", options.target)?.href || "";
            });
          }
        }
      }
    },
    build: {
      chunkSizeWarningLimit: 1024
      // chunk 大小警告的限制（单位kb）
    }
  };
});
export {
  vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcuanMiLCAiYnVpbGQvaW5kZXguanMiLCAic3JjL2Fzc2V0cy9pY29ucy9keW5hbWljLWljb25zLmpzIiwgImJ1aWxkL3BsdWdpbi1pc21lL2ljb25zLmpzIiwgImJ1aWxkL3BsdWdpbi1pc21lL3BhZ2UtcGF0aGVzLmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRDpcXFxcdnNjb2RlXFxcXHZ1ZS1uYWl2ZS1hZG1pblwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRDpcXFxcdnNjb2RlXFxcXHZ1ZS1uYWl2ZS1hZG1pblxcXFx2aXRlLmNvbmZpZy5qc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRDovdnNjb2RlL3Z1ZS1uYWl2ZS1hZG1pbi92aXRlLmNvbmZpZy5qc1wiOy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIEBBdXRob3I6IFJvbm5pZSBaaGFuZ1xyXG4gKiBATGFzdEVkaXRvcjogUm9ubmllIFpoYW5nXHJcbiAqIEBMYXN0RWRpdFRpbWU6IDIwMjMvMTIvMDUgMjE6MzE6MDJcclxuICogQEVtYWlsOiB6Y2x6b25lQG91dGxvb2suY29tXHJcbiAqIENvcHlyaWdodCBcdTAwQTkgMjAyMyBSb25uaWUgWmhhbmcoXHU1OTI3XHU4MTM4XHU2MDJBKSB8IGh0dHBzOi8vaXNtZS50b3BcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnXHJcbmltcG9ydCBWdWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJ1xyXG5pbXBvcnQgVnVlSnN4IGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZS1qc3gnXHJcbmltcG9ydCBVbm9jc3MgZnJvbSAndW5vY3NzL3ZpdGUnXHJcbmltcG9ydCBBdXRvSW1wb3J0IGZyb20gJ3VucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGUnXHJcbmltcG9ydCB7IE5haXZlVWlSZXNvbHZlciB9IGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3Jlc29sdmVycydcclxuaW1wb3J0IENvbXBvbmVudHMgZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvdml0ZSdcclxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnLCBsb2FkRW52IH0gZnJvbSAndml0ZSdcclxuaW1wb3J0IHJlbW92ZU5vTWF0Y2ggZnJvbSAndml0ZS1wbHVnaW4tcm91dGVyLXdhcm4nXHJcbmltcG9ydCBWdWVEZXZUb29scyBmcm9tICd2aXRlLXBsdWdpbi12dWUtZGV2dG9vbHMnXHJcbmltcG9ydCB7IHBsdWdpbkljb25zLCBwbHVnaW5QYWdlUGF0aGVzIH0gZnJvbSAnLi9idWlsZC9wbHVnaW4taXNtZSdcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZygoeyBtb2RlIH0pID0+IHtcclxuICBjb25zdCB2aXRlRW52ID0gbG9hZEVudihtb2RlLCBwcm9jZXNzLmN3ZCgpKVxyXG4gIGNvbnN0IHsgVklURV9QVUJMSUNfUEFUSCwgVklURV9QUk9YWV9UQVJHRVQgfSA9IHZpdGVFbnZcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGJhc2U6IFZJVEVfUFVCTElDX1BBVEggfHwgJy8nLFxyXG4gICAgcGx1Z2luczogW1xyXG4gICAgICBWdWUoKSxcclxuICAgICAgVnVlSnN4KCksXHJcbiAgICAgIFZ1ZURldlRvb2xzKCksXHJcbiAgICAgIFVub2NzcygpLFxyXG4gICAgICBBdXRvSW1wb3J0KHtcclxuICAgICAgICBpbXBvcnRzOiBbJ3Z1ZScsICd2dWUtcm91dGVyJ10sXHJcbiAgICAgICAgZHRzOiBmYWxzZSxcclxuICAgICAgfSksXHJcbiAgICAgIENvbXBvbmVudHMoe1xyXG4gICAgICAgIHJlc29sdmVyczogW05haXZlVWlSZXNvbHZlcigpXSxcclxuICAgICAgICBkdHM6IGZhbHNlLFxyXG4gICAgICB9KSxcclxuICAgICAgLy8gXHU4MUVBXHU1QjlBXHU0RTQ5XHU2M0QyXHU0RUY2XHVGRjBDXHU3NTI4XHU0RThFXHU3NTFGXHU2MjEwXHU5ODc1XHU5NzYyXHU2NTg3XHU0RUY2XHU3Njg0cGF0aFx1RkYwQ1x1NUU3Nlx1NkRGQlx1NTJBMFx1NTIzMFx1ODY1QVx1NjJERlx1NkEyMVx1NTc1N1xyXG4gICAgICBwbHVnaW5QYWdlUGF0aGVzKCksXHJcbiAgICAgIC8vIFx1ODFFQVx1NUI5QVx1NEU0OVx1NjNEMlx1NEVGNlx1RkYwQ1x1NzUyOFx1NEU4RVx1NzUxRlx1NjIxMFx1ODFFQVx1NUI5QVx1NEU0OWljb25cdUZGMENcdTVFNzZcdTZERkJcdTUyQTBcdTUyMzBcdTg2NUFcdTYyREZcdTZBMjFcdTU3NTdcclxuICAgICAgcGx1Z2luSWNvbnMoKSxcclxuICAgICAgLy8gXHU3OUZCXHU5NjY0XHU5NzVFXHU1RkM1XHU4OTgxXHU3Njg0dnVlLXJvdXRlclx1NTJBOFx1NjAwMVx1OERFRlx1NzUzMVx1OEI2Nlx1NTQ0QTogTm8gbWF0Y2ggZm91bmQgZm9yIGxvY2F0aW9uIHdpdGggcGF0aFxyXG4gICAgICByZW1vdmVOb01hdGNoKCksXHJcbiAgICBdLFxyXG4gICAgcmVzb2x2ZToge1xyXG4gICAgICBhbGlhczoge1xyXG4gICAgICAgICdAJzogcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksICdzcmMnKSxcclxuICAgICAgICAnfic6IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpKSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBzZXJ2ZXI6IHtcclxuICAgICAgaG9zdDogJzAuMC4wLjAnLFxyXG4gICAgICBwb3J0OiAzMjAwLFxyXG4gICAgICBvcGVuOiBmYWxzZSxcclxuICAgICAgcHJveHk6IHtcclxuICAgICAgICAnL2FwaSc6IHtcclxuICAgICAgICAgIHRhcmdldDogVklURV9QUk9YWV9UQVJHRVQsXHJcbiAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXHJcbiAgICAgICAgICByZXdyaXRlOiBwYXRoID0+IHBhdGgucmVwbGFjZSgvXlxcL2FwaS8sICcnKSxcclxuICAgICAgICAgIHNlY3VyZTogZmFsc2UsXHJcbiAgICAgICAgICBjb25maWd1cmU6IChwcm94eSwgb3B0aW9ucykgPT4ge1xyXG4gICAgICAgICAgICAvLyBcdTkxNERcdTdGNkVcdTZCNjRcdTk4NzlcdTUzRUZcdTU3MjhcdTU0Q0RcdTVFOTRcdTU5MzRcdTRFMkRcdTc3MEJcdTUyMzBcdThCRjdcdTZDNDJcdTc2ODRcdTc3MUZcdTVCOUVcdTU3MzBcdTU3NDBcclxuICAgICAgICAgICAgcHJveHkub24oJ3Byb3h5UmVzJywgKHByb3h5UmVzLCByZXEpID0+IHtcclxuICAgICAgICAgICAgICBwcm94eVJlcy5oZWFkZXJzWyd4LXJlYWwtdXJsJ10gPSBuZXcgVVJMKHJlcS51cmwgfHwgJycsIG9wdGlvbnMudGFyZ2V0KT8uaHJlZiB8fCAnJ1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGJ1aWxkOiB7XHJcbiAgICAgIGNodW5rU2l6ZVdhcm5pbmdMaW1pdDogMTAyNCwgLy8gY2h1bmsgXHU1OTI3XHU1QzBGXHU4QjY2XHU1NDRBXHU3Njg0XHU5NjUwXHU1MjM2XHVGRjA4XHU1MzU1XHU0RjREa2JcdUZGMDlcclxuICAgIH0sXHJcbiAgfVxyXG59KVxyXG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkQ6XFxcXHZzY29kZVxcXFx2dWUtbmFpdmUtYWRtaW5cXFxcYnVpbGRcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkQ6XFxcXHZzY29kZVxcXFx2dWUtbmFpdmUtYWRtaW5cXFxcYnVpbGRcXFxcaW5kZXguanNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L3ZzY29kZS92dWUtbmFpdmUtYWRtaW4vYnVpbGQvaW5kZXguanNcIjsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBAQXV0aG9yOiBSb25uaWUgWmhhbmdcclxuICogQExhc3RFZGl0b3I6IFJvbm5pZSBaaGFuZ1xyXG4gKiBATGFzdEVkaXRUaW1lOiAyMDIzLzEyLzA0IDIyOjQ4OjAyXHJcbiAqIEBFbWFpbDogemNsem9uZUBvdXRsb29rLmNvbVxyXG4gKiBDb3B5cmlnaHQgXHUwMEE5IDIwMjMgUm9ubmllIFpoYW5nKFx1NTkyN1x1ODEzOFx1NjAyQSkgfCBodHRwczovL2lzbWUudG9wXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJ1xyXG5pbXBvcnQgeyBnbG9iU3luYyB9IGZyb20gJ2dsb2InXHJcbmltcG9ydCBkeW5hbWljSWNvbnMgZnJvbSAnLi4vc3JjL2Fzc2V0cy9pY29ucy9keW5hbWljLWljb25zLmpzJ1xyXG5cclxuLyoqXHJcbiAqIEB1c2FnZSBcdTc1MUZcdTYyMTBpY29ucywgXHU3NTI4XHU0RThFIHVub2NzcyBzYWZlbGlzdFx1RkYwQ1x1NEVFNVx1NjUyRlx1NjMwMVx1OTg3NVx1OTc2Mlx1NTJBOFx1NjAwMVx1NkUzMlx1NjdEM1x1ODFFQVx1NUI5QVx1NEU0OVx1NTZGRVx1NjgwN1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEljb25zKCkge1xyXG4gIGNvbnN0IGZlRmlsZXMgPSBnbG9iU3luYygnc3JjL2Fzc2V0cy9pY29ucy9mZWF0aGVyLyouc3ZnJywgeyBub2RpcjogdHJ1ZSwgc3RyaWN0OiB0cnVlIH0pXHJcbiAgY29uc3QgbWVGaWxlcyA9IGdsb2JTeW5jKCdzcmMvYXNzZXRzL2ljb25zL2lzbWUvKi5zdmcnLCB7IG5vZGlyOiB0cnVlLCBzdHJpY3Q6IHRydWUgfSlcclxuICBjb25zdCBmZUljb25zID0gZmVGaWxlcy5tYXAoKGZpbGVQYXRoKSA9PiB7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IHBhdGguYmFzZW5hbWUoZmlsZVBhdGgpIC8vIFx1ODNCN1x1NTNENlx1NjU4N1x1NEVGNlx1NTQwRFx1RkYwQ1x1NTMwNVx1NjJFQ1x1NTQwRVx1N0YwMFxyXG4gICAgY29uc3QgZmlsZU5hbWVXaXRob3V0RXh0ID0gcGF0aC5wYXJzZShmaWxlTmFtZSkubmFtZSAvLyBcdTgzQjdcdTUzRDZcdTUzQkJcdTk2NjRcdTU0MEVcdTdGMDBcdTc2ODRcdTY1ODdcdTRFRjZcdTU0MERcclxuICAgIHJldHVybiBgaS1mZToke2ZpbGVOYW1lV2l0aG91dEV4dH1gXHJcbiAgfSlcclxuICBjb25zdCBtZUljb25zID0gbWVGaWxlcy5tYXAoKGZpbGVQYXRoKSA9PiB7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IHBhdGguYmFzZW5hbWUoZmlsZVBhdGgpIC8vIFx1ODNCN1x1NTNENlx1NjU4N1x1NEVGNlx1NTQwRFx1RkYwQ1x1NTMwNVx1NjJFQ1x1NTQwRVx1N0YwMFxyXG4gICAgY29uc3QgZmlsZU5hbWVXaXRob3V0RXh0ID0gcGF0aC5wYXJzZShmaWxlTmFtZSkubmFtZSAvLyBcdTgzQjdcdTUzRDZcdTUzQkJcdTk2NjRcdTU0MEVcdTdGMDBcdTc2ODRcdTY1ODdcdTRFRjZcdTU0MERcclxuICAgIHJldHVybiBgaS1tZToke2ZpbGVOYW1lV2l0aG91dEV4dH1gXHJcbiAgfSlcclxuXHJcbiAgcmV0dXJuIFsuLi5keW5hbWljSWNvbnMsIC4uLmZlSWNvbnMsIC4uLm1lSWNvbnNdXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAdXNhZ2UgXHU3NTFGXHU2MjEwLnZ1ZVx1NjU4N1x1NEVGNlx1OERFRlx1NUY4NFx1NTIxN1x1ODg2OFx1RkYwQ1x1NzUyOFx1NEU4RVx1NkRGQlx1NTJBMFx1ODNEQ1x1NTM1NVx1NjVGNlx1NTNFRlx1NEUwQlx1NjJDOVx1OTAwOVx1NjJFOVx1NUJGOVx1NUU5NFx1NzY4NC52dWVcdTY1ODdcdTRFRjZcdThERUZcdTVGODRcdUZGMENcdTk2MzJcdTZCNjJcdTYyNEJcdTUyQThcdThGOTNcdTUxNjVcdTYyQTVcdTk1MTlcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlUGF0aGVzKCkge1xyXG4gIGNvbnN0IGZpbGVzID0gZ2xvYlN5bmMoJ3NyYy92aWV3cy8qKi8qLnZ1ZScpXHJcbiAgcmV0dXJuIGZpbGVzLm1hcChpdGVtID0+IGAvJHtwYXRoLm5vcm1hbGl6ZShpdGVtKS5yZXBsYWNlKC9cXFxcL2csICcvJyl9YClcclxufVxyXG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkQ6XFxcXHZzY29kZVxcXFx2dWUtbmFpdmUtYWRtaW5cXFxcc3JjXFxcXGFzc2V0c1xcXFxpY29uc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRDpcXFxcdnNjb2RlXFxcXHZ1ZS1uYWl2ZS1hZG1pblxcXFxzcmNcXFxcYXNzZXRzXFxcXGljb25zXFxcXGR5bmFtaWMtaWNvbnMuanNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L3ZzY29kZS92dWUtbmFpdmUtYWRtaW4vc3JjL2Fzc2V0cy9pY29ucy9keW5hbWljLWljb25zLmpzXCI7LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICogQEF1dGhvcjogUm9ubmllIFpoYW5nXHJcbiAqIEBMYXN0RWRpdG9yOiBSb25uaWUgWmhhbmdcclxuICogQExhc3RFZGl0VGltZTogMjAyMy8xMi8wNCAyMjo1MDo0OVxyXG4gKiBARW1haWw6IHpjbHpvbmVAb3V0bG9vay5jb21cclxuICogQ29weXJpZ2h0IFx1MDBBOSAyMDIzIFJvbm5pZSBaaGFuZyhcdTU5MjdcdTgxMzhcdTYwMkEpIHwgaHR0cHM6Ly9pc21lLnRvcFxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbi8vIFx1OTcwMFx1ODk4MVx1NTJBOFx1NjAwMVx1NkUzMlx1NjdEM1x1NzY4NGljb25pZnlcdTU2RkVcdTY4MDdcdUZGMENcdTRFRTVpLVx1NUYwMFx1NTkzNFxyXG5leHBvcnQgZGVmYXVsdCBbJ2ktc2ltcGxlLWljb25zOmp1ZWppbiddXHJcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRDpcXFxcdnNjb2RlXFxcXHZ1ZS1uYWl2ZS1hZG1pblxcXFxidWlsZFxcXFxwbHVnaW4taXNtZVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRDpcXFxcdnNjb2RlXFxcXHZ1ZS1uYWl2ZS1hZG1pblxcXFxidWlsZFxcXFxwbHVnaW4taXNtZVxcXFxpY29ucy5qc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRDovdnNjb2RlL3Z1ZS1uYWl2ZS1hZG1pbi9idWlsZC9wbHVnaW4taXNtZS9pY29ucy5qc1wiOy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIEBBdXRob3I6IFJvbm5pZSBaaGFuZ1xyXG4gKiBATGFzdEVkaXRvcjogUm9ubmllIFpoYW5nXHJcbiAqIEBMYXN0RWRpdFRpbWU6IDIwMjMvMTIvMDQgMjI6NDg6MTFcclxuICogQEVtYWlsOiB6Y2x6b25lQG91dGxvb2suY29tXHJcbiAqIENvcHlyaWdodCBcdTAwQTkgMjAyMyBSb25uaWUgWmhhbmcoXHU1OTI3XHU4MTM4XHU2MDJBKSB8IGh0dHBzOi8vaXNtZS50b3BcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5pbXBvcnQgeyBnZXRJY29ucyB9IGZyb20gJy4uJ1xyXG5cclxuY29uc3QgUExVR0lOX0lDT05TX0lEID0gJ2lzbWU6aWNvbnMnXHJcbmV4cG9ydCBmdW5jdGlvbiBwbHVnaW5JY29ucygpIHtcclxuICByZXR1cm4ge1xyXG4gICAgbmFtZTogJ2lzbWU6aWNvbnMnLFxyXG4gICAgcmVzb2x2ZUlkKGlkKSB7XHJcbiAgICAgIGlmIChpZCA9PT0gUExVR0lOX0lDT05TX0lEKVxyXG4gICAgICAgIHJldHVybiBgXFwwJHtQTFVHSU5fSUNPTlNfSUR9YFxyXG4gICAgfSxcclxuICAgIGxvYWQoaWQpIHtcclxuICAgICAgaWYgKGlkID09PSBgXFwwJHtQTFVHSU5fSUNPTlNfSUR9YCkge1xyXG4gICAgICAgIHJldHVybiBgZXhwb3J0IGRlZmF1bHQgJHtKU09OLnN0cmluZ2lmeShnZXRJY29ucygpKX1gXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfVxyXG59XHJcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRDpcXFxcdnNjb2RlXFxcXHZ1ZS1uYWl2ZS1hZG1pblxcXFxidWlsZFxcXFxwbHVnaW4taXNtZVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRDpcXFxcdnNjb2RlXFxcXHZ1ZS1uYWl2ZS1hZG1pblxcXFxidWlsZFxcXFxwbHVnaW4taXNtZVxcXFxwYWdlLXBhdGhlcy5qc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRDovdnNjb2RlL3Z1ZS1uYWl2ZS1hZG1pbi9idWlsZC9wbHVnaW4taXNtZS9wYWdlLXBhdGhlcy5qc1wiOy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIEBBdXRob3I6IFJvbm5pZSBaaGFuZ1xyXG4gKiBATGFzdEVkaXRvcjogUm9ubmllIFpoYW5nXHJcbiAqIEBMYXN0RWRpdFRpbWU6IDIwMjMvMTIvMDUgMjE6Mzc6NDNcclxuICogQEVtYWlsOiB6Y2x6b25lQG91dGxvb2suY29tXHJcbiAqIENvcHlyaWdodCBcdTAwQTkgMjAyMyBSb25uaWUgWmhhbmcoXHU1OTI3XHU4MTM4XHU2MDJBKSB8IGh0dHBzOi8vaXNtZS50b3BcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5pbXBvcnQgeyBnZXRQYWdlUGF0aGVzIH0gZnJvbSAnLi4nXHJcblxyXG5jb25zdCBQTFVHSU5fUEFHRV9QQVRIRVNfSUQgPSAnaXNtZTpwYWdlLXBhdGhlcydcclxuZXhwb3J0IGZ1bmN0aW9uIHBsdWdpblBhZ2VQYXRoZXMoKSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIG5hbWU6ICdpc21lOnBhZ2UtcGF0aGVzJyxcclxuICAgIHJlc29sdmVJZChpZCkge1xyXG4gICAgICBpZiAoaWQgPT09IFBMVUdJTl9QQUdFX1BBVEhFU19JRClcclxuICAgICAgICByZXR1cm4gYFxcMCR7UExVR0lOX1BBR0VfUEFUSEVTX0lEfWBcclxuICAgIH0sXHJcbiAgICBsb2FkKGlkKSB7XHJcbiAgICAgIGlmIChpZCA9PT0gYFxcMCR7UExVR0lOX1BBR0VfUEFUSEVTX0lEfWApIHtcclxuICAgICAgICByZXR1cm4gYGV4cG9ydCBkZWZhdWx0ICR7SlNPTi5zdHJpbmdpZnkoZ2V0UGFnZVBhdGhlcygpKX1gXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfVxyXG59XHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFRQSxPQUFPQSxXQUFVO0FBQ2pCLE9BQU8sU0FBUztBQUNoQixPQUFPLFlBQVk7QUFDbkIsT0FBTyxZQUFZO0FBQ25CLE9BQU8sZ0JBQWdCO0FBQ3ZCLFNBQVMsdUJBQXVCO0FBQ2hDLE9BQU8sZ0JBQWdCO0FBQ3ZCLFNBQVMsY0FBYyxlQUFlO0FBQ3RDLE9BQU8sbUJBQW1CO0FBQzFCLE9BQU8saUJBQWlCOzs7QUNUeEIsT0FBTyxVQUFVO0FBQ2pCLFNBQVMsZ0JBQWdCOzs7QUNBekIsSUFBTyx3QkFBUSxDQUFDLHVCQUF1Qjs7O0FETWhDLFNBQVMsV0FBVztBQUN6QixRQUFNLFVBQVUsU0FBUyxrQ0FBa0MsRUFBRSxPQUFPLE1BQU0sUUFBUSxLQUFLLENBQUM7QUFDeEYsUUFBTSxVQUFVLFNBQVMsK0JBQStCLEVBQUUsT0FBTyxNQUFNLFFBQVEsS0FBSyxDQUFDO0FBQ3JGLFFBQU0sVUFBVSxRQUFRLElBQUksQ0FBQyxhQUFhO0FBQ3hDLFVBQU0sV0FBVyxLQUFLLFNBQVMsUUFBUTtBQUN2QyxVQUFNLHFCQUFxQixLQUFLLE1BQU0sUUFBUSxFQUFFO0FBQ2hELFdBQU8sUUFBUSxrQkFBa0I7QUFBQSxFQUNuQyxDQUFDO0FBQ0QsUUFBTSxVQUFVLFFBQVEsSUFBSSxDQUFDLGFBQWE7QUFDeEMsVUFBTSxXQUFXLEtBQUssU0FBUyxRQUFRO0FBQ3ZDLFVBQU0scUJBQXFCLEtBQUssTUFBTSxRQUFRLEVBQUU7QUFDaEQsV0FBTyxRQUFRLGtCQUFrQjtBQUFBLEVBQ25DLENBQUM7QUFFRCxTQUFPLENBQUMsR0FBRyx1QkFBYyxHQUFHLFNBQVMsR0FBRyxPQUFPO0FBQ2pEO0FBS08sU0FBUyxnQkFBZ0I7QUFDOUIsUUFBTSxRQUFRLFNBQVMsb0JBQW9CO0FBQzNDLFNBQU8sTUFBTSxJQUFJLFVBQVEsSUFBSSxLQUFLLFVBQVUsSUFBSSxFQUFFLFFBQVEsT0FBTyxHQUFHLENBQUMsRUFBRTtBQUN6RTs7O0FFNUJBLElBQU0sa0JBQWtCO0FBQ2pCLFNBQVMsY0FBYztBQUM1QixTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixVQUFVLElBQUk7QUFDWixVQUFJLE9BQU87QUFDVCxlQUFPLEtBQUssZUFBZTtBQUFBLElBQy9CO0FBQUEsSUFDQSxLQUFLLElBQUk7QUFDUCxVQUFJLE9BQU8sS0FBSyxlQUFlLElBQUk7QUFDakMsZUFBTyxrQkFBa0IsS0FBSyxVQUFVLFNBQVMsQ0FBQyxDQUFDO0FBQUEsTUFDckQ7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGOzs7QUNkQSxJQUFNLHdCQUF3QjtBQUN2QixTQUFTLG1CQUFtQjtBQUNqQyxTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixVQUFVLElBQUk7QUFDWixVQUFJLE9BQU87QUFDVCxlQUFPLEtBQUsscUJBQXFCO0FBQUEsSUFDckM7QUFBQSxJQUNBLEtBQUssSUFBSTtBQUNQLFVBQUksT0FBTyxLQUFLLHFCQUFxQixJQUFJO0FBQ3ZDLGVBQU8sa0JBQWtCLEtBQUssVUFBVSxjQUFjLENBQUMsQ0FBQztBQUFBLE1BQzFEO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjs7O0FKSkEsSUFBTyxzQkFBUSxhQUFhLENBQUMsRUFBRSxLQUFLLE1BQU07QUFDeEMsUUFBTSxVQUFVLFFBQVEsTUFBTSxRQUFRLElBQUksQ0FBQztBQUMzQyxRQUFNLEVBQUUsa0JBQWtCLGtCQUFrQixJQUFJO0FBRWhELFNBQU87QUFBQSxJQUNMLE1BQU0sb0JBQW9CO0FBQUEsSUFDMUIsU0FBUztBQUFBLE1BQ1AsSUFBSTtBQUFBLE1BQ0osT0FBTztBQUFBLE1BQ1AsWUFBWTtBQUFBLE1BQ1osT0FBTztBQUFBLE1BQ1AsV0FBVztBQUFBLFFBQ1QsU0FBUyxDQUFDLE9BQU8sWUFBWTtBQUFBLFFBQzdCLEtBQUs7QUFBQSxNQUNQLENBQUM7QUFBQSxNQUNELFdBQVc7QUFBQSxRQUNULFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztBQUFBLFFBQzdCLEtBQUs7QUFBQSxNQUNQLENBQUM7QUFBQTtBQUFBLE1BRUQsaUJBQWlCO0FBQUE7QUFBQSxNQUVqQixZQUFZO0FBQUE7QUFBQSxNQUVaLGNBQWM7QUFBQSxJQUNoQjtBQUFBLElBQ0EsU0FBUztBQUFBLE1BQ1AsT0FBTztBQUFBLFFBQ0wsS0FBS0MsTUFBSyxRQUFRLFFBQVEsSUFBSSxHQUFHLEtBQUs7QUFBQSxRQUN0QyxLQUFLQSxNQUFLLFFBQVEsUUFBUSxJQUFJLENBQUM7QUFBQSxNQUNqQztBQUFBLElBQ0Y7QUFBQSxJQUNBLFFBQVE7QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE9BQU87QUFBQSxRQUNMLFFBQVE7QUFBQSxVQUNOLFFBQVE7QUFBQSxVQUNSLGNBQWM7QUFBQSxVQUNkLFNBQVMsQ0FBQUEsVUFBUUEsTUFBSyxRQUFRLFVBQVUsRUFBRTtBQUFBLFVBQzFDLFFBQVE7QUFBQSxVQUNSLFdBQVcsQ0FBQyxPQUFPLFlBQVk7QUFFN0Isa0JBQU0sR0FBRyxZQUFZLENBQUMsVUFBVSxRQUFRO0FBQ3RDLHVCQUFTLFFBQVEsWUFBWSxJQUFJLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxRQUFRLE1BQU0sR0FBRyxRQUFRO0FBQUEsWUFDbkYsQ0FBQztBQUFBLFVBQ0g7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUNBLE9BQU87QUFBQSxNQUNMLHVCQUF1QjtBQUFBO0FBQUEsSUFDekI7QUFBQSxFQUNGO0FBQ0YsQ0FBQzsiLAogICJuYW1lcyI6IFsicGF0aCIsICJwYXRoIl0KfQo=
